package com.jxtc.enterprise.common.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.time.LocalDateTime;

@Getter
@Setter
@ToString
@TableName(value = "user")
public class User {
    /**
     * uuid
     */
    @TableId(type = IdType.ASSIGN_UUID)
    private String id;
    /**
     * 用户名称
     */
    private String username;
    /**
     * 用户昵称
     */
    private String nickname;
    /**
     * 用户手机号
     */
    private String phoneNumber;
    /**
     * 用户密码（极端情况下，用户的微信绑定的不是 hr 录入的手机号，需要用户使用 hr 录入的手机号和密码进行登录）
     */
    private String passwd;

    /**
     * 微信账号对应的 openid，当用户使用微信支付时，需要使用到此 openId
     */
    private String openId;

    /**
     * 所属公司 ID
     */
    private String companyId;
    /**
     * 所属部门 ID
     */
    private String departmentId;
    /**
     * 员工使用的菜单 ID
     */
    @TableField("menu_id")
    private String menuId;

    /**
     * 钱包余额，单位为分
     */
    private Integer balance;
    /**
     * 员工每餐限购份数（默认为 1），有效值：
     * 0：该员工不允许点餐
     * 1：该员工每餐（注意不是每天）只能点一份
     * N：可以点多份，比如 HR 可以设置为 9999，即不限制；也可以设置为 5份，比如某个伙伴团队临时入住公司，由伙伴团队的接口人来统一为他们点餐
     */
    private Integer limitCount;
    /**
     * 是否显示客户餐，1 表示显示客户餐，2 表示不显示客户餐（默认值为 2）。见枚举 ShowVipUserFoodEnum
     */
    private Integer showVipFoodBtn;
    /**
     * 软删除标记，1 表示已删除，0 表示未删除
     */
    private Boolean delFlag;
    /**
     * 创建时间，在创建时默认传值，不需要手动操作
     */
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    /**
     * 更新时间，在更新时默认传值，不需要手动操作
     */
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}
